package com.authine.cloudpivot.web.api.secondopen.dao;

import com.authine.cloudpivot.web.api.datasource.annotation.DataSource;
import com.authine.cloudpivot.web.api.enums.DataSourceType;
import com.authine.cloudpivot.web.api.secondopen.domain.Dept;
import com.authine.cloudpivot.web.api.secondopen.domain.DingDingUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SyncDDMapper {

    /**
     * 获取用户信息
     */
    @DataSource(value = DataSourceType.SLAVE)
    List<DingDingUser> getuserinfo();

    /**
     * 根据工号查询userid
     */
    String selectUserid(String jobnumber);

    /**
     * 获取部门信息-全量表
     */
    @DataSource(value = DataSourceType.SLAVE)
    List<Dept> getdepinfo();

    /**
     * 根據id查部門
     */
    @DataSource(value = DataSourceType.SLAVE)
    Dept getDepById(@Param("bmid") String code,String gsid);

    /**
     * 通过部门编码查询部门信息
     */
    String selecedepByBmId(String bmbm,String  gsid);

    /**
     * 插入钉钉id和HR部门id到中间表
     * @param ddid
     * @param bmmc
     * @param hrid
     * @return
     */
    int insertintoDeptable(String id,Long ddid,String bmmc,String hrid,String gsbm);

    /**
     * 查询组织信息
     */
    @DataSource(value = DataSourceType.SLAVE)
    Dept selectOrg(String zzid);

    /**
     * 查询部门增量表
     */
    @DataSource(value = DataSourceType.SLAVE)
    List<Dept> incrementdep();

    /**
     * 查询级别编码
     */
    String selectLevelCode(String code);

    /**
     * 查询人员增量表
     */
    @DataSource(value = DataSourceType.SLAVE)
    List<DingDingUser> incrementuser();

    /**
     * 从部门id表删除id
     */
    void deleteDepidFromTable(String  depid);
}